# 第一种效果
'''
1*1=1
2*1=2     2*2=4
3*1=3     3*2=6     3*3=9
4*1=4     4*2=8     4*3=12    4*4=16
5*1=5     5*2=10    5*3=15    5*4=20    5*5=25
6*1=6     6*2=12    6*3=18    6*4=24    6*5=30    6*6=36
7*1=7     7*2=14    7*3=21    7*4=28    7*5=35    7*6=42    7*7=49
8*1=8     8*2=16    8*3=24    8*4=32    8*5=40    8*6=48    8*7=56    8*8=64
9*1=9     9*2=18    9*3=27    9*4=36    9*5=45    9*6=54    9*7=63    9*8=72    9*9=81
'''
# line 定义行的初始值
line =1
while line < 10:
    # row 定义列的初始值
    row = 1
    while row < line or row == line:
        print('{}*{}={:<5}'.format(line, row, line * row), end=' ')
        row = row + 1
    print()
    line = line + 1
print('='*100)

# 第二种效果
'''
9*1=9     9*2=18    9*3=27    9*4=36    9*5=45    9*6=54    9*7=63    9*8=72    9*9=81    
8*1=8     8*2=16    8*3=24    8*4=32    8*5=40    8*6=48    8*7=56    8*8=64    
7*1=7     7*2=14    7*3=21    7*4=28    7*5=35    7*6=42    7*7=49    
6*1=6     6*2=12    6*3=18    6*4=24    6*5=30    6*6=36    
5*1=5     5*2=10    5*3=15    5*4=20    5*5=25    
4*1=4     4*2=8     4*3=12    4*4=16    
3*1=3     3*2=6     3*3=9     
2*1=2     2*2=4     
1*1=1
'''
# line 定义行的初始值
line = 9
while line > 0:
    # row 定义列的初始值
    row = 1
    while row < line or row == line:
        print('{}*{}={:<5}'.format(line, row, line * row), end=' ')
        row = row + 1
    print()
    line = line - 1
print('='*100)

# 第三种效果
'''
                                                                                1*1=1     
                                                                      2*2=4     1*2=2     
                                                            3*3=9     2*3=6     1*3=3     
                                                  4*4=16    3*4=12    2*4=8     1*4=4     
                                        5*5=25    4*5=20    3*5=15    2*5=10    1*5=5     
                              6*6=36    5*6=30    4*6=24    3*6=18    2*6=12    1*6=6     
                    7*7=49    6*7=42    5*7=35    4*7=28    3*7=21    2*7=14    1*7=7     
          8*8=64    7*8=56    6*8=48    5*8=40    4*8=32    3*8=24    2*8=16    1*8=8     
9*9=81    8*9=72    7*9=63    6*9=54    5*9=45    4*9=36    3*9=27    2*9=18    1*9=9 
'''
# row 定义列的初始值
row = 1
while row < 10:
    # line 定义行的初始值
    line = 9
    while line > 0:
        # 判断row 大于等于line 则输出乘法表，否则输出占位
        if row > line or row == line:
            print('{}*{}={:<5}'.format(line,row,line*row),end=' ')
        else:
            print(' '*10,end='')
        line = line - 1
    print()
    row = row + 1
print('='*100)

# 第四种效果
'''
9*9=81    8*9=72    7*9=63    6*9=54    5*9=45    4*9=36    3*9=27    2*9=18    1*9=9     
          8*8=64    7*8=56    6*8=48    5*8=40    4*8=32    3*8=24    2*8=16    1*8=8     
                    7*7=49    6*7=42    5*7=35    4*7=28    3*7=21    2*7=14    1*7=7     
                              6*6=36    5*6=30    4*6=24    3*6=18    2*6=12    1*6=6     
                                        5*5=25    4*5=20    3*5=15    2*5=10    1*5=5     
                                                  4*4=16    3*4=12    2*4=8     1*4=4     
                                                            3*3=9     2*3=6     1*3=3     
                                                                      2*2=4     1*2=2     
                                                                                1*1=1    
'''
# row 定义列的初始值
row = 9
while row > 0:
    # line 定义行的初始值
    line = 9
    while line > 0:
        # 判断row 大于等于line 则输出乘法表，否则输出占位
        if row > line or row == line:
            print('{}*{}={:<5}'.format(line,row,line*row),end=' ')
        else:
            print(' '*10,end='')
        line = line - 1
    print()
    row = row - 1
print('='*100)